perm filename OCTDDT.FAI[1,BGB] blob sn#001244 filedate 1972-08-28 generic text, type T, neo UTF8
00100	TITLE OCTDDT
00200	COMMENT /
00300		OCTDDT is the second program of our system
00400	from nothing. OCTDDT must be short because it has to be
00500	assembled by hand and loaded without error.	/
00600	
00700		P ←← 17
00800	; OCTAL PRINT THE CONTENTS OF AC0.
00900	NUMOUT:	MOVE 	1,
01000		MOVEI	4,4
01100		MOVEI	2,3
01200		SETZ
01300		ROTC	3
01400		IORI	60
01500		OUTCHR
01600		SOJG	2,.-4
01700		OUTCHR	BLANK
01800		SOJG	4,.-7
01900		POPJ	P,
02000	; OCTAL INPUT FROM TTY TO AC0, BRKCHR IN AC1, IGNORE LF'S.
02100	NUMIN:	SETZ
02200		INCHRW	1
02300		CAIN	1,12
02400		JRST	.-2
02500		CAIL	1,60
02600		CAILE	1,67
02700		POPJ	P,
02800		ROT	1,-3
02900		ROTC	3
03000		JRST	NUMIN+1
03100	; MAIN EXAMINE AND DEPOSIT LISTEN LOOP.
03200	SA:	MOVE	P,[XWD -100,PDL]
03300	LISTEN:	OUTCHR	STAR
03400		PUSHJ	P,NUMIN
03500		OUTCHR	TAB
03600		MOVE	3,	;EXAMINE
03700		MOVE	(3)
03800		OUTCHR	TAB
03900		PUSHJ	P,NUMOUT
04000		PUSHJ	P,NUMIN
04100		CAIN	1,175	; no deposit on alt mode.
04200		AOJA	3,[OUTCHR CR↔OUTCHR LF↔MOVE 3↔PUSHJ P,NUMOUT↔JRST .-5]
04300		MOVEM	(3)	;DEPOSIT
04400		JRST	LISTEN
04500	TAB:	11
04600	LF:	12
04700	CR:	15
04800	BLANK:	40
04900	STAR:	52
05000	PDL:	BLOCK 100
05100	END	SA